/******************************************************
Cours:   LOG121
Session: A2013
Groupe:  
Projet: Laboratoire #3
etudiant(e)s: Simon Castro
			  Fredy Alexander 
			  Renaud Vincent
              
              
Professeur : 
Nom du fichier: TestJoueur.java
Date cree: 2013-11-11
Date dern. modif. 2013-11-11
*******************************************************
Historique des modifications
*******************************************************
2013-11-11 Version 1.0
*******************************************************/
package testsUnitaires;

import static org.junit.Assert.*;
import cadricielJeuDe.Joueur;

import org.junit.Before;
import org.junit.Test;

/**
 * Classe de tests unitaires testant les differents membres de la classe Joueur.
 * @author Renaud
 */
public class TestJoueur {

	Joueur joueur1;
	Joueur joueur2;
	
	//Instanciation de deux joueurs
	@Before
	public void aFaire() {
		joueur1 = new Joueur("Steve");
		joueur2 = new Joueur("Jerry");
	};
	
	/*
	 * Tests des accesseurs.
	 */
	@Test
	public void testGetNom() {
		String nom1 = joueur1.getNom();
		String nom2 = joueur2.getNom();
		assertTrue(nom1.equals("Steve") && nom2.equals("Jerry"));
	}
	
	@Test
	public void testGetScoreInitial() {
		assertTrue(joueur1.getScore() == 0 && joueur2.getScore() == 0);
	}

	
	@Test
	public void testGetToursInitial() {
		assertTrue(joueur1.getNbrTours() == 0 && joueur2.getNbrTours() == 0);
	}
	
	@Test
	public void testJoueursNonActifs() {
		assertTrue(joueur1.isJoueurActif() == false && 
				joueur2.isJoueurActif() == false);
	}
	
	/*
	 * Tests des mutateurs.
	 */
	@Test
	public void testSetNbrTours() {
		joueur1.setNbrTours(2);
		assertTrue(joueur1.getNbrTours() == 2);
	}
	
	@Test
	public void testSetActif() {
		joueur1.setJoueurActif(true);
		assertTrue(joueur1.isJoueurActif() == true);
	}
	
	/*
	 * Tests de la methode compareTo comparant deux joueurs.
	 */
	@Test
	public void testPerdant() {
		joueur1.setScore(10);
		joueur2.setScore(50);
		assertTrue(joueur1.compareTo(joueur2) == -1);
	}
	
	@Test
	public void testGagnantt() {
		joueur1.setScore(100);
		joueur2.setScore(50);
		assertTrue(joueur1.compareTo(joueur2) == 1);
	}
	
	@Test
	public void testEgal() {
		joueur1.setScore(50);
		joueur2.setScore(50);
		assertTrue(joueur1.compareTo(joueur2) == 0);
	}
	
	/*
	 * Test de toString.
	 */
	@Test
	public void testToString() {
		assertTrue(joueur1.toString().equals("Joueur [nom=Steve, score=0, "
				+ "nbrTours=0, joueurActif=false]"));
	}
}
